Machining

ABSTRACT

A machining system is described having independently movable cutting instruments configured to simultaneously generate different parts. The cutting instruments are capable of independent motion along a Z-axis and are mounted on a common beam that traverses the parts in an X, Y plane. Merge software modules merge a number of part programs into a single master program. A control unit interprets the master program and controls the machining system to generate the parts. The software modules generate the master program such that all of the Z-axis move commands within the part programs are sequenced along a single X, Y traverse path based on a defined cutting strategy and cutting direction. In this manner, the machining system simultaneously produces a number of different parts.

TECHNICAL FIELD

[0001] This invention relates to machining.

BACKGROUND

[0002] A machining system typically includes a precision cuttinginstrument, such as high-speed spindle, for processing a work piece toproduce a mechanical part. A control unit within the machining systeminterprets a “part program” that includes a series of machine movementcommands for directing the cutting instrument to traverse the work pieceand ultimately produce the desired part. The control unit processes eachcommand sequentially until the end of the program has been reached.

[0003] For each command, the control unit moves the cutting instrumentwithin a space defined by a three-dimensional coordinate system noted asX, Y and Z. The X and Y-axis are typically oriented to form a horizontalplane while the Z-axis represents the vertical axis perpendicular to theX, Y plane. The machining system is designed to position its cuttinginstrument at any coordinate point within the area bounded by the X andY axes. Additional commands operate other functions of the machiningsystem such as tool selection, speed and coolant flow.

[0004] The cutting instrument starts at an initial starting position,typically location 0,0,0, and moves along the three axes sequentially,command by command, until all of the commands are executed.Three-dimensional parts are produced by placing the work piece on the X,Y plane and removing a portion of the work piece with the cuttinginstrument as it traverses along the X, Y plane. Continued repeatedmoves in the X direction, the Y direction and the Z-axis allow thecutting mechanism to traverse any three-dimensional profile until thepart is fully achieved. The motion of the cutting instrument over thework piece is referred to as a tool path, collectively formed by asseries of tool path segments. When the end of a specific tool pathsegment is reached, the cutting instrument is typically commanded to“step-over” an offset in the X direction or the Y direction. This offsetis referred to as the distance between the tool paths. The cuttinginstrument then makes another pass over the work piece along an adjacenttool path segment. At specific locations along the tool paths, thecommands direct the cutting instrument to traverse in the X, Y plane andalso move along the Z-axis. This process continues until all of the toolpath segments have been traversed and the part has been produced.

[0005] Many conventional machining systems operate in this manner toproduce three-dimensional parts one at a time. Some machining systemshave more than one cutting mechanism fixed to the Z-axis on a commonbeam and can produce several copies of a three-dimensional part at thesame time.

SUMMARY

[0006] Generally, the invention is directed to a machining system havinga plurality of independently movable precision cutting instrumentsconfigured to simultaneously generate a number of different parts. Inone embodiment, the cutting instruments are capable of independentmotion along the Z-axis and are mounted on a common beam that traversesthe parts in an X, Y plane. Merge software modules merge a number ofpart programs into a single master program. A control unit interpretsthe master program and controls the machining system to generate theparts. The software modules generate the master program such that all ofthe Z-axis move commands within the separate part programs are sequencedalong a single X, Y traverse path based on a defined cutting strategyand cutting direction. In this manner, the machining systemsimultaneously produces a number of different parts.

[0007] According to another aspect, the invention is directed to amethod in which a plurality of part programs are merged into a masterpart program. The machining system is controlled according to the masterpart program in order to simultaneously produce a plurality of parts. Tomerge the part programs, a group starting point is calculated for all ofthe cutting instruments. All Z-axis move commands within the partprograms are identified and modified such that an X, Y location in themaster part program for each Z-axis move command is computed relative tothe calculated starting point. A set of X, Y master program movecommands is then generated to sequentially move the cutting instrumentsto the modified X, Y locations of the combined Z-axis move commands.

[0008] Various embodiments of the invention are set forth in theaccompanying drawings and the description below. Other features andadvantages of the invention will become apparent from the description,the drawings, and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

[0009]FIG. 1 is a block diagram illustrating a system capable ofsimultaneously machining different three-dimensional parts.

[0010]FIG. 2 illustrates three example part programs.

[0011]FIG. 3 illustrates an example master program formed according tothe invention.

[0012]FIG. 4 illustrates an example tool path segment for three cuttinginstruments controlled according to the master program of FIG. 3.

[0013]FIG. 5 is a flowchart of an example process in which the systemprocesses a number of part programs and produces a number of differentparts.

[0014]FIG. 6 is a flowchart of an example process of defining a new partgroup.

[0015]FIG. 7 is a flowchart illustrating processing a master program toproduce a number of different parts.

[0016]FIG. 8 is a flowchart illustrating merging the part programs toform the master program.

[0017]FIG. 9 illustrates an example merge report.

DETAILED DESCRIPTION

[0018]FIG. 1 is a block diagram illustrating a system 2 capable ofsimultaneously machining different three-dimensional parts 8. System 2includes control unit 4 coupled to machining system 6, which hasmultiple cutting instruments mounted at variable distances from eachother on a common beam. The cutting instruments are capable ofindependent motion along the Z-axis while the common beam traverses theX, Y plane. Alternatively, the common beam and a material support tabletravel in the X, Y plane. Each cutting instrument removes material froma different work piece in a manner that enables machining system 6 toproduce a number of unique parts 8 simultaneously.

[0019] Control unit 4 receives a number of different part programs 10.Each part program 10 corresponds to a part 8 and conforms toconventional standards for defining part programs such that it could berun on any conventional machining system without modification to producea single part. Control unit 4 merges part programs 10 into a masterprogram 16 and controls machining system 6 according to master program16 to simultaneously produce parts 8. In this manner, machining system 6can produce completely different multiple three-dimensional parts 8 atthe same time on the same machining system 2. In one configuration,control unit 4 comprises two computing systems (not shown) including afirst computing system for executing merge software modules 14 to formmaster program 16 and a second computing for controlling machiningsystem 6 according to master program 16.

[0020] Part programs 10 can be generated manually by a part programmerinteracting directly with control unit 4 or produced with the aid of aComputer Aided Design (CAD) system 12. As discussed in detail below,master program 16 incorporates all of the Z-axis move commands that arecontained within the individual part programs 10 and logically sequencesthe commands along common X, Y traverse paths. Thus, control unit 4generates master program 16 such that each cutting mechanism traversesthe X, Y plane in a common fashion. Movements in the Z direction,however, can be unique to each individual part 8. This common X, Ymovement and the independent Z movements produce a set of parts 8simultaneously, referred to herein as a part group. Multiple groups canbe defined within master program 16 and are collectively referred to asa job.

[0021] Typically, the commands within each individual part program 10are configured to direct a cutting mechanism to make multiple passesover the tool paths using different sized tool bits. Control unit 4generates the master program 16 such that all of the different parts 8are processed for a given tool bit size before the cutting instrumentsproceed to the next tool bit size. When all of the tool bit sizes havebeen processed for all of the groups defined within the master program16, the job is complete.

[0022]FIG. 2 illustrates three example part programs. Each of theexample part programs includes a first command that directs a cuttinginstrument to start from location 0,0,0. The remaining commands in theexample part programs direct the cutting instruments over a single toolpath. Notably, each command specifies a location according to athree-dimensional coordinate system having X, Y and Z axes. Forsimplicity, all non-move commands, such as tool bit selection commands,have been removed from the example part programs.

[0023]FIG. 3 illustrates an example master program formed by merging theexample part programs of FIG. 2 according to the invention. Asillustrated in FIG. 3, the example master program comprises 21 movecommands that direct three cutting instruments A, B, and C along a toolpath according to a common X, Y movement. Each cutting instrument,however, can independently move in the z-axis. Each command specifies anX location, a Y location and three Z-axis locations for cuttinginstruments A, B and C, respectively. For example, the first commanddirects all three cutting instruments to start from location 0,0,0. Thesecond command directs each cutting instrument to move to location 0.2,0.0 in the X, Y plane without moving along the z-axis. The third commanddirects each cutting instrument to move to the 0.3, 0.0 location in theX, Y plane but directs cutting instruments A, B and C to move to −0.1,0.0 and 0.0 along the Z-axis, respectively.

[0024]FIG. 4 illustrates a single tool path segment cross-section astraversed by cutting instruments A, B, and C according to the examplemaster program illustrated in FIG. 3. Specifically, cutting instrumentsA, B and C start from initial positions 17A, 17B and 17C, respectively,and move in the positive X direction (horizontally across FIG. 4) in acommon manner. The cutting instruments move independently in the Zdirection according to the three Z-axis locations specified by eachcommand. In the illustrated example, the location of the cuttinginstruments A, B and C are plotted along their corresponding tool pathsin 0.1″ increments.

[0025]FIG. 5 is a flowchart of an example process 20 in which system 2processes a number of part programs 10, such as the example partprograms described above, to simultaneously produce a number ofdifferent parts 8. First, an operator accesses control unit 4 and entersa unique user identification (step 21). Next, the operator creates a newjob and enters a unique identifier for the job (step 22). After creatingthe unique job identifier, the operator interacts with control unit 4 todefine one or more groups of parts 8, as described in detail below withreference to FIG. 3 (step 23). The operator then selects one or moregroups that he or she wishes to include in the new merge job. To selecta previously defined group to include within the merge job, the operatorenters the group's unique identifier (step 24) and establishes astarting position for the group (step 25). To establish the group'sstarting position, the operator inputs a three-dimensional location forthe group relative to home (0,0,0). After adding the group to the job,the operator can elect to include another group (step 26) and repeat theprocess.

[0026] Once all of the groups have been added to the job, merge softwaremodules 14 process the part programs 10 and merge them into masterprogram 15 (step 27). After merging the part programs 10, merge softwaremodules 14 generate a job report summarizing various processing data andstatistics for master program 16 (step 28). At this point, control unit4 interprets master program 16 and operates machining system 6 in orderto simultaneously produce parts 8 (step 28).

[0027]FIG. 6 is a flowchart of an example process 20 illustrating how anoperator can interact with control unit 4 in order to define a newgroup. Initially, the operator creates a unique group identifier, eitherby entering an identifier manually (step 31). Next, the operator entersvarious path configuration data such as a movement step size and adistance between tool paths for the corresponding cutting instruments(step 32). The operator then selects a cutting strategy (step 33). Forexample, the operator can select between: (1) parallel cutting along theX-axis, (2) parallel cutting along the Y-axis, and (3) crosswise cuttingfirst along the X-axis and then along the Y-axis. Next, the operatorselects a cutting direction (step 34). For example, the operator canselect between: (1) raster, in which the cutting mechanism cuts in bothpositive and negative X/Y directions, (2) conventional, in which thecutting mechanism cuts in positive X/Y directions only and rapidlyreturns in negative X/Y directions, and (3) climb, in which the cuttingmechanism cuts in negative X/Y directions only and rapidly returns inpositive X,/Y directions.

[0028] After selecting a cutting direction, the operator enters atemplate size for the master program 16 defining an X-axis size and aY-axis size (step 35). After configuring the group (steps 31 through35), the operator selects a part program 10 for inclusion in the group(step 36) and assigns the part program 10 to a cutting mechanism (step37). The operator repeats this process until all of the desired partprograms 8 have been included in the group (step 38), at which time theoperator has completed the definition of a group.

[0029]FIG. 7 is a flowchart illustrating a process 40 in which controlunit 2 process master program 16 in order to simultaneously produceparts 8. In a typical operation, control unit 4 starts by initializingin a HALT state at a HOME location with all of the cutting instrumentsin a fully retracted position (step 42) such that an operator, or anautomatic tool-changer, can load an initial tool bit of a first tool bitsize into each of the different cutting instruments (step 43).

[0030] Next, control unit 4 processes the master program 16 to directmachining system 6 to move the cutting mechanism to a group startingpoint (step 44). Control unit 4 then moves each cutting mechanism alongthe merged tool paths for the first programmed tool bit size (step 45).After completing the merged tool paths using the first tool bit size,each cutting mechanism is directed to return to its correspondingoriginal starting point.

[0031] If master program 16 contains additional groups, control unit 4moves the cutting instruments to a starting point for the next group(step 44) and along the merged tool paths for the same tool bit size(step 45). Control unit 4 continues this process until all of the groupswithin the job are processed for the current tool bit size.

[0032] Upon processing all of the groups in the job, control unit 4determines whether additional tool sizes are required (step 47). If so,control unit 4 returns the cutting instruments to the HOME position andenters the HALT state with all of the cutting instruments fullyretracted (step 42). This allows the operator, or an automatictool-changer, to install the next size tool bits in all of the cuttinginstruments (step 43). When the tool bits have been installed, thecontrol unit 4 begins the process again for the new tool bit size andrepeats the above-described process until all the required tool bitsizes have been processed for all groups. Upon completion, control unit4 returns the cutting instruments to the HOME position and directsmachining system to enter a STOP state (step 48).

[0033] As noted above, each part program 10 to be merged into a specificjob is by itself a conventional program conforming to industrystandards. Several logical constraints, however, can expedite themerging process, although they are not specifically required fordifferent groups within a single merge job. For example, merging thepart programs 10 is expedited when each part program 10 for a givengroup employs the same tool motion strategy. Different strategies may beused between groups within a specific a common job, but only one ofthose strategies is used at any one time for a specific group.

[0034] Another logical constraint, for example, is that each partprogram 10 of a specific group, and all groups to be merged into aspecific job, should employ the same tool bit size sequence and callsfor each tool using the same tool identifier, such as Ti for a firsttool size and T2 for a second tool size. Each part program 10 of aspecific group of a specific job also uses the same step size along thetool path and the same distance between the tool paths.

[0035] Furthermore, machine tool commands such as spindle speed, coolantflow, and other initial setup commands should appear at the beginning ofmaster program 16, as consistent with industry standards. These commandsshould be the same for each part program 10 within a specific group.Similarly, feedrate commands for X, Y-axis movements should be the samefor each part program 10 of a specific group. Ultimate feedrates,however, for all axes are computed by the machine controller consistentwith industry standards.

[0036] Rapid traverse commands generally should not be used in partprograms 8 that are to be merged into a specific job. Instead, asexplained in detail below, merge software modules 14 insert a set of newrapid traverse commands based upon the specific Z-axis moverequirements, the chosen cutting strategy, the chosen cutting direction,and the template X, Y traverse area for each group in the job.

[0037] Finally, each part program 10 in a specific job should have thesame X, Y, Z zero position with respect to the physical work piece.According to conventional industry standards, for example, the zeroposition is defined as upper left near corner when facing the front ofthe machine. As such, a positive X movement moves to the right, apositive Y movement moves in toward the machine, and a positive Zmovement moves up along the tool spindle.

[0038]FIG. 8 is a flowchart illustrating a process 50 in which mergesoftware modules 14 of control unit 4 process part programs 10 andgenerate master program 16. In order to merge part programs 10, controlunit 4 identifies which part program has the largest X, Y traverse pathand uses that X, Y traverse path area as a master tool path size for themotion commands of group (step 51). Alternatively, the operator canmanually enter the master tool path size. Merge software modules 14 thenexamine all individual part programs 8 to calculate a group startingpoint (step 52). Upon calculating the group starting point, mergesoftware modules 14 inserts an initial rapid traverse move command tomove the cutting instruments from the machine home position to the groupstarting position (step 53).

[0039] Next, merge software modules 14 examine each part program 10 andidentify each move command along the Z-axis. For each identified Z-axismove command, merge software modules 14 convert the X, Y location, whichis relative to a starting point for the corresponding part program 10,to a new X, Y location relative to the group's starting point (step 54).Merge software modules 14 then insert each converted Z-axis move commandin sequence into master program 16 (step 55). It is possible that Z-axismove commands for different part programs 10 will have the same X, Ylocation. In this case, merge software modules 14 insert each movecommand in master program 16 for sequential processing.

[0040] After inserting the Z-axis move commands, merge software modules14 compute a new X, Y move command to traverse the distances between theZ-axis move commands based upon the group's defined cutting strategy andcutting direction (step 56). Merge software modules 14 insert the X, Ymove commands into master program 16 between the Z-axis move commands inorder to complete the tool paths.

[0041] After inserting the X, Y move commands, merge software modules 14repeat the process for each group within master program 16 (step 58).Once all of the groups defined within part programs 10 have beenprocessed, merge software modules 14 insert a rapid traverse command tomove the cutting instruments back into machine home position. The resultof process 50 is a master program that contains all Z-axis move commandsof part programs 10 sequenced along common X, Y traverse paths based onthe cutting strategy and cutting direction for each defined part group.Control unit 4 can, therefore, control machining system 6 according tomaster program 16 in order to simultaneously produce a number ofdifferent parts 8.

[0042]FIG. 9 illustrates an example merge report produced by mergesoftware modules 14 after generating master program 16 from partprograms 10. The example merge report summarizes various processing dataand statistics for master program including one or more part groups. Forexample, the example merge report lists three part groups, A140, A141and B323. For each part group, the example merge report lists a homeposition, a path step size, a step over size, a cutting strategy, acutting direction, a master template size, the individual CNC programsmerged to form the part group, the assigned cutting instrument for eachCNC program and the total inches for each cutting instrument and thepart group.

[0043] Various embodiments of the invention have been described. Theseand other embodiments are within the scope of the following claims.

What is claimed is:
 1. A method comprising: merging part programs into amaster part program; and controlling a machine having independentlymovable cutting instruments according to the master part program tomachine different parts defined by the part programs.
 2. The method ofclaim 1, wherein controlling the machining system includessimultaneously producing a plurality of parts.
 3. The method of claim 1,wherein merging the part programs comprises: assigning each part programto a corresponding one of the cutting instruments; and generating movecommands for the master part program, wherein each move commandspecifies a common X, Y location for the cutting instrument.
 4. Themethod of claim 3, wherein each move commands of the master programspecifies a Z location for each cutting instrument.
 5. The method ofclaim 1, wherein merging the part programs comprises: identifying Z-axismove commands within the part programs; modifying an X, Y location foreach Z-axis move command; and inserting the updated Z-axis move commandsinto the master part program.
 6. The method of claim 5, wherein mergingthe part programs comprises generating a set of X, Y move command tosequentially move the cutting instruments to the modified X, Ylocations.
 7. The method of claim 6, wherein generating the set of X, Ymove commands includes generating the set of X, Y move commands as afunction of a selected cutting direction and a selected cuttingstrategy.
 8. The method of claim 6, wherein generating the set of X, Ymove commands includes computing an X, Y traverse distance for each X, Ymove command.
 9. The method of claim 1, wherein merging the partprograms comprises defining a plurality of a part groups within themaster program.
 10. A computer-readable medium having instructionsstored thereon to cause a programmable processor to: merge a pluralityof part programs into a master part program; and control a machiningsystem having a plurality of independently movable cutting instrumentsaccording to the master part program.
 11. The computer-readable mediumof claim 9, wherein the instructions cause the programmable processor tosimultaneously produce a plurality of parts.
 12. The computer-readablemedium of claim 9, wherein the instructions cause the programmableprocessor to: assign each part program to a corresponding one of thecutting instruments; and generate move commands for the master partprogram, wherein each move command specifies a common X, Y location forthe cutting instrument.
 13. The computer-readable medium of claim 12,wherein the instructions cause the programmable processor to generatethe move commands of the master program such that each move commandspecifies a Z location for each part program.
 14. The computer-readablemedium of claim 10, wherein the instructions cause the programmableprocessor to: identify Z-axis move commands within the part programs;modify an X, Y location for each Z-axis move command; and insert theupdated Z-axis move commands into the master part program.
 15. Thecomputer-readable medium of claim 14, wherein the instructions cause theprogrammable processor to: calculate a group starting point; and computea new X, Y location for each Z-axis move command relative to the groupstarting point.
 16. The computer-readable medium of claim 14, whereinthe instructions cause the programmable processor to generate a set ofX, Y move commands to sequentially move the cutting instruments to themodified X, Y locations.
 17. The computer-readable medium of claim 16,wherein the instructions cause the programmable processor to generatethe set of X, Y move commands as a function of a selected cuttingdirection and a selected cutting strategy.
 18. The computer-readablemedium of claim 16, wherein the instructions cause the programmableprocessor to compute an X, Y traverse distance for each X, Y movecommand.
 19. The computer-readable medium of claim 10, wherein theinstructions cause the programmable processor to define a plurality of apart groups within the master program.
 20. A system comprising: amachining system having a plurality of independently movable cuttinginstruments; and a control unit to interpret a master program andcontrol the cutting instruments.
 21. The system of claim 20, wherein thecontrol unit controls the machining system to simultaneously produce aplurality of parts.
 22. The system of claim 20 and further comprising aset of software modules configured to receive a plurality of partprograms and merge the part programs into the master program.
 23. Thesystem of claim 22, wherein the software modules execute in an operatingenvironment provided by the control unit.
 24. The system of claim 20,wherein the software modules are configured to: assign each part programto a corresponding one of the cutting instruments; and generate movecommands for the master part program, wherein each move commandspecifies a common X, Y location for the cutting instrument.
 25. Thecomputer-readable medium of claim 24, wherein the software modules areconfigured to generate the move commands of the master program such thateach move command specifies a Z location for each part program.
 26. Thesystem of claim 20, wherein the software modules are configured to:identify Z-axis move commands within the part programs; modify an X, Ylocation for each Z-axis move command; and insert the updated Z-axismove commands into the master part program.
 27. The system of claim 20,wherein the software modules are configured to: calculate a groupstarting point; and compute a new X, Y location for each Z-axis movecommand relative to the group starting point.
 28. A method comprising:receiving a plurality of orders for parts; generating a part program foreach order; merging the part programs into a master program; andcontrolling a machining device according to the master program toproduce the parts simultaneously.
 29. The method of claim 28, wherein atleast a number of the orders are received from different customers. 30.The method of claim 28, wherein merging the part programs comprises:assigning each part program to unique cutting instrument of themachining device; and generating move commands for the master partprogram, wherein each move command specifies a common X, Y location forthe cutting instrument.
 31. A machining system having a plurality ofcutting instruments, wherein the cutting instruments are independentlymovable along a first axis and movable in a common traverse path in aplane perpendicular to the axis.
 32. The machining system of claim 31,wherein the cutting instruments are mounted to a common beam.
 33. Themachining system of claim 31 and further comprising a control unit tointerpret a master program and control the cutting instruments.
 34. Thesystem of claim 27 and further comprising a set of software modulesconfigured to receive merge the part programs into the master program.35. A method comprising: receiving a plurality of part programs; andmerging the part programs into a master part program.
 36. The method ofclaim 35, wherein merging the part programs comprises assigning eachpart program to a corresponding one of the cutting instruments.
 37. Themethod of claim 35, wherein merging the part programs comprisesgenerating move commands for the master part program, wherein each movecommand specifies a common X, Y location for the cutting instrument. 38.The method of claim 37, wherein each move commands of the master programspecifies a Z location for each cutting instrument.
 39. Acomputer-readable medium having master part program stored thereon forcontrolling a machining device to simultaneously produce a plurality ofparts, wherein the master part program is formed from a plurality ofindividual part programs.
 40. The computer-readable medium of claim 39,wherein each command specifies a location for a plurality ofindependently movable cutting instruments.